package org.phalanx.game.units;

public class UnitAttribute {
	private String attribute;
	
	public UnitAttribute(){}
	
	public UnitAttribute(String attr){
		this.setAttribute(attr);
	}
	
	public UnitAttribute(Integer attr){
		this.setAttribute(attr);
	}
	
	public UnitAttribute(Double attr){
		this.setAttribute(attr);
	}
	
	public UnitAttribute(Boolean attr){
		setAttribute(attr);
	}
	
	public void setAttribute(String attr){
		this.attribute = attr;
	}
	
	public void setAttribute(Integer attr){
		setAttribute(attr.toString());
	}
	
	public void setAttribute(Double attr){
		setAttribute(attr.toString());
	}
	
	public void setAttribute(Boolean attr){
		if (attr != null){
			setAttribute(attr ? "yes" : "no");
		}
		else {
			setAttribute("no");
		}
	}
	
	public String getAttribute(){
		return attribute;
	}
	
	public Boolean getAttributeAsBoolean(){
		Boolean bool = null;
		
		String attrStr = getAttribute();
		
		if (attrStr.equals("yes")){
			bool = true;
		}
		else if (attrStr.equals("no")) {
			bool = false;
		}
		
		return bool;
	}
	
	public Double getAttributeAsDouble(){
		Double attrDbl = null;
		
		try {
			attrDbl = Double.valueOf(getAttribute());
		} catch (NumberFormatException nfe){}
		
		return attrDbl;
	}
	
	public Integer getAttributeAsInteger(){
		Integer attrInt = null;
		
		try {
			attrInt = Integer.valueOf(getAttribute());
		} catch (NumberFormatException nfe){}
		
		return attrInt;
	}
}
